package com.huaxinkai.mobile.util.common;

import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.apache.commons.lang3.time.DateUtils;

/**
 * 后台任务管理类
 * @author liuzh
 * @data 2017年1月2日下午12:06:39
 */
public class TaskManager implements ServletContextListener {

	 /**  
	  * 每天的毫秒数  
	  */  
	public static final long PERIOD_DAY = DateUtils.MILLIS_PER_DAY;   
	 /**  
	  * 一周内的毫秒数  
	  */  
	 public static final long PERIOD_WEEK = PERIOD_DAY * 7;   
	 /**  
	  * 一小时的毫秒值
	  */  
	 public static final long  PERIOD_HOUR = DateUtils.MILLIS_PER_HOUR;   
	 /**  
	  * 一分钟的毫秒值
	  */  
	 public static final long PERIOD_MINUTE = DateUtils.MILLIS_PER_MINUTE;   
	 /**  
	  * 一秒的毫秒值
	  */  
	 public static final long PERIOD_SECOND = DateUtils.MILLIS_PER_SECOND;   
	 /**  
	  * 无延迟  
	  */  
	 public static final long NO_DELAY = 0;   
	 /**  
	  * 定时器  
	  */  
	 private Timer timer;  
	 
	 /**  
	  * 在Web应用开始启动
	  */ 
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		try {
			timer.cancel(); // 定时器销毁 
//			menuTimer.cancel();
			System.out.println("定时器销毁 ！！");
		} catch (Exception e) {
			System.out.println("线程为空，销毁失败！！");
		}
		  
	}
	
	 /**  
	  * 在Web应用初始化结束
	  */ 
	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		//定义定时器   
		timer = new Timer(true);  
//		menuTimer = new Timer(true);
		//更新定时器，更新微信token
		timer.schedule(new UpdateWechatToken(),NO_DELAY, PERIOD_MINUTE * 30);  
//		menuTimer.schedule(new CreateWechatMenu(), NO_DELAY, PERIOD_MINUTE * 30);

	}

}
